/**
 * 
 */
package jp.ac.aiit.yc.sww.database.dao;

import static jp.ac.aiit.yc.sww.constant.Constants.HEADER_DOC;
import static jp.ac.aiit.yc.sww.constant.Constants.HEADER_PAGE;
import static jp.ac.aiit.yc.sww.constant.Constants.HEADER_ROOM;
import static jp.ac.aiit.yc.sww.constant.Constants.HEADER_USER;
import static jp.ac.aiit.yc.sww.util.Util.null2String;
import static jp.ac.aiit.yc.sww.util.Util.parseInt;

import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.util.Map;

import jp.ac.aiit.yc.sww.Resources.SwwResource;
import jp.ac.aiit.yc.sww.database.dto.NoteDataDto;
import jp.ac.aiit.yc.sww.database.dto.PagePresentDto;
import jp.ac.aiit.yc.sww.database.dto.SwwDtoIF;

/**
 * @author Kato
 *
 */
public class PagePresentDao extends BaseDAO implements SwwDaoIF {

	/**
	 * コンストラクタ
	 * @param なし
	 * @return なし
	 */
	public PagePresentDao() {
		// TODO Auto-generated constructor stub
	}

	/**
	 * Insert用ストアドプロシージャをプロパティファイル(sql.properties)より取得する。
	 * @author 
	 * @param なし
	 * @return String ストアドプロシージャ
	 */
	@Override
	public String getInsertSP() {
		return getSP(SwwResource.SP_PAGE_EVENT);
	}

	/**
	 * DTOとメッセージヘッダーからInsert用ストアドのパラメータを設定する。
	 * @param CallableStatement	ストアドパラメータ
	 * @param SwwDtoIF	DTO(インターフェースの形で渡す)
	 * @return Map ヘッダー
	 */
	@Override
	public CallableStatement setInsertParam(CallableStatement cStmt,
			SwwDtoIF dtoIF) throws Exception {
		PagePresentDto dto =  (PagePresentDto)dtoIF;
		Map headers = getHeaders();
	
		cStmt.setString(1, null2String(headers.get(HEADER_USER)));
		cStmt.setString(2, null2String(headers.get(HEADER_ROOM)));
		cStmt.setInt(3, parseInt(headers.get(HEADER_DOC)));
		cStmt.setInt(4, parseInt(headers.get(HEADER_PAGE)));
		
		return cStmt;
		
	}

	/**
	 * セットしたヘッダーを取得する。
	 * @param なし
	 * @return Map ヘッダー
	 */
	@Override
	public Map<String, String> getHeaders() {
		// TODO Auto-generated method stub
		return super.getHeaders();
	}

	/**
	 * ヘッダーをセットする。 
	 * @param Map ヘッダー
	 * @return なし
	 */
	@Override
	public void setHeaders(Map<String, String> headers) {
		// TODO Auto-generated method stub
		super.setHeaders(headers);
	}
	
	/*
	 * (未使用)presentと一緒に取得されるため。以下同じ
	 */
	@Override
	public String getQuerySP() {
		// TODO Auto-generated method stub
		return null;
	}
	
	/*
	 * (未使用)
	 */
	@Override
	public SwwDtoIF createDto(ResultSet rs) throws Exception {
		// TODO Auto-generated method stub
		return null;
	}

	/* (未使用)
	 * @see jp.ac.aiit.yc.sww.database.dao.SwwDaoIF#register(jp.ac.aiit.yc.sww.database.dto.SwwDtoIF)
	 */
	@Override
	public boolean register(SwwDtoIF dto) {
		// TODO Auto-generated method stub
		return false;
	}
	
	/* (未使用)
	 * @see jp.ac.aiit.yc.sww.database.dao.SwwDaoIF#setQueryParam(java.sql.CallableStatement, jp.ac.aiit.yc.sww.database.dto.SwwDtoIF)
	 */
	@Override
	public CallableStatement setQueryParam(CallableStatement cstmt,
			SwwDtoIF dtoIF) throws Exception {
		// TODO Auto-generated method stub
		return null;
	}

}
